home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / mac / LOGIC Apple II 5.25" Library - ProDOS / PRO050.dsk / CAT.bas < prev    next >
BASIC Source File  |  2012-02-16  |  5KB  |  170 lines

  1. 10  GOSUB 62000
  2. 15 D$ =  CHR$(4)
  3. 20  PRINT D$;"PR#3"
  4. 100 U = 1:K = 0
  5. 2000  GOTO 4020
  6. 2200  REM  READ TIME
  7. 2205  IF FC = 1  THEN TM$ = "": RETURN 
  8. 2210  PRINT D$;"IN#4": PRINT D$;"PR#4"
  9. 2220  INPUT ":";CK$
  10. 2230  PRINT D$;"IN#0": PRINT D$;"PR#0"
  11. 2240  PRINT D$;"PR#3"
  12. 2260 TM$ =  MID$ (CK$,12,2) +":" + MID$ (CK$,15,2)
  13. 2270 X =  VAL( MID$ (CK$,12,2))
  14. 2280  IF X <12  THEN TM$ = TM$ +"  A.M.": RETURN 
  15. 2290  IF X <13  THEN TM$ = TM$ +"  P.M.": RETURN 
  16. 2300 X = X -12:X$ =  STR$(X):TM$ = X$ + RIGHT$(TM$,3) +"  P.M."
  17. 2310  RETURN 
  18. 4000  REM  CATEGORIES MENU
  19. 4010  GOSUB 2200
  20. 4020  HOME : PRINT 
  21. 4030  HTAB 31: VTAB 1: PRINT "CATEGORIES SECTION"
  22. 4040  HTAB 28: PRINT "========================"
  23. 4050  HTAB 28: VTAB 7: PRINT "A)  ADD NEW CATEGORY"
  24. 4055  HTAB 28: PRINT "I)  LIST EXISTING CATEGORIES"
  25. 4060  HTAB 28: PRINT "M)  MAIN MENU"
  26. 4075  HTAB 28: PRINT "T)  EDIT EXISTING CATEGORY"
  27. 4080  HTAB 69: VTAB 23: PRINT TM$
  28. 4090  HTAB 40: VTAB 20: GET X$
  29. 4100  IF X$ = "A"  OR X$ = "a"  THEN 5000
  30. 4110  IF X$ = "M"  OR X$ = "m"  THEN 10000
  31. 4120  IF X$ = "I"  OR X$ = "i"  THEN FI = 1: GOTO 9000
  32. 4130  IF X$ = "T"  OR X$ = "t"  THEN 6000
  33. 4140  IF X$ < >"t"  THEN 4000
  34. 5000  REM  ADD A CATEGORY
  35. 5010  FOR I = 1 TO 40
  36. 5020  IF  LEN(CG$(I)) <1  THEN 5040
  37. 5030  NEXT 
  38. 5040  HOME 
  39. 5050  HTAB 32: VTAB 5
  40. 5060  PRINT "ENTER THE NEW CATEGORY"
  41. 5070  HTAB 38: VTAB 10: INPUT "";CG$
  42. 5072  IF  LEN(CG$) >8  THEN  HTAB 22: VTAB 12: PRINT "TOO LONG. YOU MAY ONLY USE 8 SPACES": HTAB 40: VTAB 14: GET X$: GOTO 5040
  43. 5075  IF  LEN(CG$) <1  THEN  HTAB 22: VTAB 12: PRINT "TOO SHORT. YOU MUST ENTER SOMETHING": HTAB 40: VTAB 14: GET X$: GOTO 4000
  44. 5080 CG$(I) = CG$
  45. 5090  GOTO 8000
  46. 6000  REM  EDIT A CATEGORY
  47. 6010  HOME 
  48. 6020  HTAB 23: VTAB 5: PRINT "WHICH CATEGORY WOULD YOU LIKE TO EDIT?"
  49. 6030 IN$ = ""
  50. 6040  HTAB 35 +K: VTAB 8: PRINT IN$;
  51. 6050  GET X$: IF X$ < > CHR$(13)  THEN IN$ = IN$ +X$: GOTO 6300
  52. 6060  GOTO 6050
  53. 6070  HTAB 35: VTAB 8: PRINT IN$:YY$ = IN$: GOTO 6500
  54. 6110  NEXT 
  55. 6300  IF X$ =  CHR$(27)  THEN 4000
  56. 6305  FOR I = 1 TO 40
  57. 6310  IF  LEN(CG$(I)) <1  THEN 6330
  58. 6320  IF IN$ =  LEFT$(CG$(I), LEN(IN$))  THEN K = K +1:Z$ = CG$(I):Q = I
  59. 6325  NEXT 
  60. 6330  IF K = 1  THEN K = 0:IN$ = Z$: GOTO 6070
  61. 6340  IF K = 0  THEN 6000
  62. 6350 K = 0: GOTO 6040
  63. 6500  HTAB 30: VTAB 12: PRINT "ENTER THE NEW CATEGORY"
  64. 6510  HTAB 37: VTAB 14: INPUT "";IN$
  65. 6520  IF  LEN(IN$) >8  THEN 6500
  66. 6525  IF  LEN(IN$) <1  THEN  VTAB 16: HTAB 10: PRINT "YOU MUST MERGE YOUR OLD DATA INTO A NEW OR EXISTING CATEGORY": HTAB 40: VTAB 17: GET X$: GOTO 4000
  67. 6530  HTAB 18: VTAB 18: PRINT "ALL  ";YY$;"  WILL BE REPLACED WITH  ";IN$
  68. 6535  HTAB 10: VTAB 19: PRINT "YEARLY BUDGET FOR  ";IN$;"  WILL BE THE SAME AS  ";YY$;"  WAS"
  69. 6540  HTAB 23: VTAB 22: PRINT "PRESS <`> TO ENTER OR <ESC> TO EXIT"
  70. 6550  HTAB 40: VTAB 23: GET X$
  71. 6560  IF X$ =  CHR$(27)  THEN 4000
  72. 6570  IF X$ = "`"  OR X$ = "~"  THEN 6590
  73. 6580  IF X$ < >"`"  THEN 6550
  74. 6590  FOR R = 1 TO 40
  75. 6600  IF IN$ = CG$(R)  THEN VC = Q:Q = R:CG$(VC) = "\\\": GOTO 6630
  76. 6610  NEXT 
  77. 6620 CG$(Q) = IN$
  78. 6630  PRINT D$;"OPEN /RAM/MAIN.DATA,L$96"
  79. 6640 ZN = FTN% -1
  80. 6650  FOR R = 1 TO ZN
  81. 6660 TN = R
  82. 6670  PRINT D$;"READ /RAM/MAIN.DATA,R";TN
  83. 6680  INPUT TN%
  84. 6690  INPUT DT$
  85. 6700  INPUT CN$
  86. 6710  INPUT AMT$
  87. 6720  GOSUB 63000: LET PY$ = IN$
  88. 6730  INPUT R$
  89. 6740  INPUT CTG$
  90. 6750  IF CTG$ < >YY$  THEN 6870
  91. 6760  GOSUB 63000: LET MEM$ = IN$
  92. 6770  PRINT D$;"WRITE /RAM/MAIN.DATA,R";TN
  93. 6780  PRINT TN%
  94. 6790  PRINT DT$
  95. 6800  PRINT CN$
  96. 6810  PRINT AMT$
  97. 6820  PRINT PY$
  98. 6830  PRINT R$
  99. 6840  LET CTG$ = CG$(Q)
  100. 6850  PRINT CTG$
  101. 6860  PRINT MEM$
  102. 6870  NEXT 
  103. 6880  PRINT D$;"CLOSE /RAM/MAIN.DATA"
  104. 8000  REM  ALPHABETIZE
  105. 8010  FOR AL = 65 TO 92
  106. 8020  FOR J = 1 TO I
  107. 8025  IF  LEN(CG$(J)) <1  THEN 8060
  108. 8030  IF  ASC(CG$(J)) = AL  THEN TG$(U) = CG$(J):TB$(U) = BG$(J):U = U +1
  109. 8040  IF  ASC(CG$(J)) = AL +32  THEN TG$(U) = CG$(J):TB$(U) = BG$(J):U = U +1
  110. 8050  NEXT J
  111. 8060  NEXT AL
  112. 8070 U = 1
  113. 8080  FOR I = 1 TO 40
  114. 8085  IF TG$(I) = "\\\"  THEN CG$(I) = ""
  115. 8090  IF  LEN(CG$(I)) <1  THEN UN = I -1: GOTO 9000
  116. 8100 CG$(I) = TG$(I):BG$(I) = TB$(I): IF BG$(I) = ""  THEN BG$(I) = "0.00"
  117. 8110  NEXT 
  118. 9000  REM  PRINT CATEGORY LIST
  119. 9010  HOME 
  120. 9020  HTAB 31: VTAB 1: PRINT "---CATEGORY LIST---"
  121. 9030  VTAB 3
  122. 9040  FOR I = 1 TO 20
  123. 9050  IF  LEN(CG$(I)) <1  THEN 9140
  124. 9060  PRINT CG$(I)
  125. 9070  NEXT 
  126. 9080  VTAB 3
  127. 9090  FOR I = 21 TO 40
  128. 9100  IF  LEN(CG$(I)) <1  THEN 9140
  129. 9110  HTAB 40
  130. 9120  PRINT CG$(I)
  131. 9130  NEXT 
  132. 9140  HTAB 28: VTAB 23: PRINT "PRESS ANY KEY TO CONTINUE"
  133. 9150  GET X$
  134. 9155  IF FI = 1  THEN FI = 0: GOTO 4000
  135. 9160  GOTO 20000
  136. 10000  PRINT D$;"CHAIN /RAM/CW,@4005"
  137. 20000  REM  SAVE CATEGORIES
  138. 20010  PRINT D$;"OPEN /RAM/CAT.DATA,L$20"
  139. 20020  FOR R = 1 TO 40
  140. 20030  PRINT D$;"WRITE /RAM/CAT.DATA,R";R
  141. 20040 CG$ = CG$(R):BG$ = BG$(R)
  142. 20050  PRINT CG$
  143. 20055  PRINT BG$
  144. 20060  NEXT 
  145. 20070  PRINT D$;"CLOSE /RAM/CAT.DATA"
  146. 20100  GOTO 4000
  147. 30000  REM  LOAD CATEGORIES
  148. 30010  PRINT D$;"OPEN /RAM/CAT.DATA,L$20"
  149. 30020  FOR R = 1 TO 40
  150. 30030  PRINT D$;"READ /RAM/CAT.DATA,R";R
  151. 30040  INPUT CG$
  152. 30045  INPUT BG$
  153. 30050 CG$(R) = CG$
  154. 30055 BG$(R) = BG$
  155. 30060  NEXT 
  156. 30070  PRINT D$;"CLOSE /RAM/CAT.DATA"
  157. 30100  GOTO 4000
  158. 60000  END 
  159. 62000  REM  INPUT ANYTHING
  160. 62010  LET IN$ = "X"
  161. 62020  FOR J = 768 TO 790
  162. 62030  READ I
  163. 62040  POKE J,I
  164. 62050  NEXT J
  165. 62060  DATA  162,0,32,117,253,160,2,138,145,105,200,169,0,145,105,200,169,2,145,105,76,57,213
  166. 62070  RETURN 
  167. 63000  REM  CALL ANYTHING
  168. 63010  CALL 768
  169. 63020 IN$ =  MID$ (IN$,1)
  170. 63030  RETURN